Conversation
Persist nullable slot bindings, surface unavailable history entries, and align the history UI so stale provider sessions can be removed without misleading restore actions.
Replace browser-native supervisor prompts with an in-app dialog, refine the supervisor controls UI, and show generated context preview in the objective editor.
Introduce server-side supervisor/session runtime support and update the test/runtime tooling to use isolated provider homes and safer restore flows.
Keep SessionStart as the resume_id sync signal and Stop as the only turn completion hook so provider lifecycle handling matches the product's minimal session model.
Install provider hooks once during app startup, add a manual settings action to reinject them, and remove the old per-session runtime injection path.
Keep fallback lifecycle replay aligned to session_started/turn_completed, restore background completion reminders when a session is already idle, and harden isolated Playwright runs by disabling Vite watch only in the dev-stack runtime harness. Constraint: Preserve the reduced provider lifecycle model and existing agent-exit reminder suppression Rejected: Broader session-actions/test harness refactor | would add abstraction without reducing risk in this slice Confidence: high Scope-risk: moderate
Introduce the terminal gateway and tmux-backed transport so runtime-attached sessions, workspace recovery, and terminal channel syncing share the same live runtime model instead of relying on legacy session terminal identity paths. Constraint: Keep the runtime-first attach flow compatible with existing workspace recovery and controller sync behavior Rejected: Incremental compatibility-only patching | would leave legacy terminal identity and transport paths in place Confidence: high Scope-risk: broad
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Validation
node --test tests/runtime-attach.test.ts tests/workspace-artifact-refresh.test.tsnode --test tests/workspace-runtime-controller.test.ts tests/workspace-view-persistence.test.tspnpm build:webcargo test --manifest-path apps/server/Cargo.tomlCODER_STUDIO_DEV_BACKEND_PORT=43123 CODER_STUDIO_DEV_FRONTEND_PORT=5378 pnpm test:e2e --grep "reload keeps automatic workspace runtime attaches bounded|reload defers session history loading until the drawer is opened|reload replays agent lifecycle history into running and idle browser state|interrupted sessions show an explicit resume entry and reuse the saved claude session id"CODER_STUDIO_DEV_BACKEND_PORT=43123 CODER_STUDIO_DEV_FRONTEND_PORT=5378 pnpm test:e2e --grep "reload keeps automatic workspace runtime attaches bounded|observer follows controller and takeover succeeds after timeout|same-device new client takes over immediately after controller disconnects"CODER_STUDIO_DEV_BACKEND_PORT=43123 CODER_STUDIO_DEV_FRONTEND_PORT=5378 pnpm test:e2e --grep "reload keeps automatic workspace runtime attaches bounded|interrupted sessions show an explicit resume entry and reuse the saved claude session id"